// 此vm参数为页面的实例，可以通过它引用vuex中的变量 
let a=false;
let baseUrl;
baseUrl = 'https://www.chejingjing.cn';

module.exports = (vm) => {
	// console.log(vm)
	// 初始化请求配置
	uni.$u.http.setConfig((config) => {
		/* config 为默认全局配置*/
		config.baseURL = baseUrl; /* 根域名 */ //25  6
		config.timeout = 30000;
		// console.log(config)
		
		return config
	})

	// 请求拦截
	uni.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
		// 初始化请求拦截器时，会执行此方法，此时data为undefined，赋予默认{}
		console.log('请求拦截config', config);
		config.params = config.data;
		if(config.custom.token == true){
			let VMToken = vm.$store?.state?.VuexUserData;
			if (VMToken) {
				let {token} = VMToken;
				config.header.token = token;
			}else{
				config.header.token ='';
			}
		}
		// else if (config.custom.token == true) {
		// 	let VMToken = vm.$store?.state?.VuexUserData;
		// 	if (VMToken) {
		// 		let {
		// 			token
		// 		} = VMToken;
		// 		// let token='4c9f945f-dc73-469b-88cc-5dd55977121d';
		// 		config.header.token = token;
		// 	}
		// }
		// 根据custom参数中配置的是否需要token，添加对应的请求头
		return config
	}, config => { // 可使用async await 做异步操作
		return Promise.reject(config)
	});

	// 响应拦截
	uni.$u.http.interceptors.response.use((response) => {
		/* 对响应成功做点什么 可使用async await 做异步操作*/
		const data = response.data
		console.log('响应拦截器', response);
		// 自定义参数
		const custom = response.config.custom
		if (data?.code === 0) {
			if(response.config.custom.toast===true){
				uni.$u.toast(data.msg)
			}
		}
		return response.data;
	}, (response) => {
		// 对响应错误做点什么 （statusCode !== 200）
		//console.log('对响应错误做点什么',response);
		if (response?.data?.code == 401) {
			let page = uni.$u.page();
			if (page == '/pages/EeMall/EeMall' || page == '/pages/ProductDetails/ProductDetails' || page =='/pages/UserCenter/UserCenter' || page =='/pages/MyOrder/MyOrder') {} else {
				uni.navigateTo({
					url: '/pages/LogOn/LogOn'
				})
			}
		};
		return Promise.reject(response);
	});
}
